﻿//#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>
//
//void fa(int a)
//{
//	a = 5;
//	printf("在函数fa中，a=%d\n", a);
//}
//
//void fb(int& a)
//{
//	a = 5;
//	printf("在函数fb中，a=%d\n", a);
//}
//
//
//
//int main()
//{
//	int n = 1;
//	printf("在主程中,调用fa函数之前：n=%d\n", n);
//	fa(n);
//	printf("在主程中,调用fa函数之后,调用函数fb之前：n=%d\n", n);
//	fb(n);
//	printf("在主程中,调用fb函数之后：n=%d\n", n);
//	return 0;
//}

//#include<stdio.h>
//#include<sys/timeb.h>
//void main()
//{
//	timeb t1, t2;
//	long t;
//	double x, sum = 1, sum1;
//	int i, j, n;
//	printf("请输入x n: ");
//	scanf("%lf%d", &x, &n);
//	ftime(&t1); // 求得当前时间
//	for (i = 1; i <= n; i++)
//	{
//		sum1 = 1;
//		for (j = 1; j <= i; j++)
//			sum1 = sum1 * (-1.0 / x);
//		sum += sum1;
//	}
//	ftime(&t2); // 求得当前时间
//	t = (t2.time - t1.time) * 1000 + (t2.millitm - t1.millitm); // 计算时间差
//	printf("sum=%lf 用时%ld毫秒\n", sum, t);
//}

//#include<stdio.h>
//#include<sys/timeb.h>
//void main()
//{
//	timeb t1, t2;
//	long t;
//	double x, sum = 1, sum1;
//	int i, n;
//	printf("请输入x n: ");
//	scanf("%lf%d", &x, &n);
//	ftime(&t1); // 求得当前时间
//	for (i = 1; i <= n; i++)
//	{
//		sum1 = -1.0 / x;
//		sum += sum1;
//	}
//	ftime(&t2); // 求得当前时间
//	t = (t2.time - t1.time) * 1000 + (t2.millitm - t1.millitm); // 计算时间差
//	printf("sum=%lf 用时%ld毫秒\n", sum, t);
//}

//#include"c1.h"  // 使用""进行引入
//int main()
//{
//	cout << abs(-2) << endl;  // 分别调用了c1.h中的math和iostream文件的std命名空间内的abs和cout、endl
//	// ...
//	return 0;
//}

//#include<stdio.h>
//#include<assert.h>
//#include<stdlib.h>
//// 线性表简单实现：
////数据类型
//typedef int SLDataType;
//
////基本结构
//typedef struct SeqList
//{
//	//存堆数组的指针
//	SLDataType* a;
//	//数据目前个数
//	int size;
//	//数据的储存空间
//	int capacity;
//}SL;
//
////初始化函数		初始化数据，指针置为空，普通变量置为0
//void SLInit(SL* ps)
//{
//	ps->a = NULL;
//	ps->size = ps->capacity = 0;
//}
//
//// 取值操作
//SLDataType GetElem(SL* s, int i)
//{
//	assert(i >= 0 && i < s->size);
//	return s->a[i];
//}
//
//// 查找
////查找数据		利用循环遍历进行查找，二分法需要进行排序哦~	找到了返回第一个下标，找不到返回-1
//int SLFind(SL* ps, SLDataType x)
//{
//	assert(ps);
//	for (int i = 0; i < ps->size; i++)
//	{
//		if (ps->a[i] == x)
//			return i + 1;
//	}
//	return -1;
//}
//
////判断是否已经满了还是是否存在		无需声明
//void SLCheckCapacity(SL* ps)
//{
//	//首先判断是否达到更改条件(上面两个条件的共同点就是size和capacity相等)
//	if (ps->size == ps->capacity)
//	{
//		int newcapcity = ps->capacity == 0 ? 4 : ps->capacity * 2;//一开始开4个SLDataType空间，否则就是原本的空间乘以2
//		SLDataType* temp = (SLDataType*)realloc(ps->a, sizeof(SLDataType) * newcapcity);
//		if (temp == NULL)//如果申请堆内存失败
//		{
//			printf("人家才没有出问题呢！(；д；)(realloc 失败 --)\n");
//			exit(-1);//无法申请堆内存程序直接结束吧
//		}
//		ps->a = temp;
//		ps->capacity = newcapcity;
//	}
//
//}
//
////指定插入		1.首先进行判断数组是否满了还是不存在 2.然后从此位置元素开始往后移动 3.此位置填充元素  4.判断传入的pos是否正确
//void SLInsert(SL* ps, int pos, SLDataType x)
//{
//	assert(ps);
//	SLCheckCapacity(ps);
//	if (pos > ps->size || pos < 0)
//	{
//		printf("现在存储第%d个了，要按顺序存储哦！记住没！下次不准这样啦！(▼ヘ▼#)\n", ps->size + 1);
//		return;
//	}
//
//	//注意当pos为size时一样成立 无需移动
//	for (int i = ps->size - 1; i >= pos; i--)
//	{
//		ps->a[i + 1] = ps->a[i];//从最后一个元素开始往后移动，直到目标下标也移动了，此时位置空出来了
//	}
//	ps->a[pos] = x;//此位置填充元素
//	ps->size++;
//}
//
////指定删除		1.判断是否为空	2.从此下标开始，后面元素依次往前移动一位 3.判断传入的pos是否正确
//void SLErase(SL* ps, int pos)
//{
//	assert(ps);
//	if (pos >= ps->size || pos < 0)//注意此时如果乱标注下标 size还是会减少的
//	{
//		printf("哇你这个人,都没有还怎么删哇！\n");
//		return;
//	}
//
//	//从后往前覆盖了即删除
//	for (int i = pos; i < ps->size - 1; i++)//注意最后一个覆盖的数为 ps->size - 2 = ps->size -2 + 1
//	{
//		ps->a[i] = ps->a[i + 1];
//	}
//	ps->size--;
//	printf("删除执行完成！现在还剩%d个数哦~\n", ps->size);
//}
//
////程序结束回收堆内存：
//void SLDel(SL* ps)
//{
//	assert(ps);
//	free(ps->a);
//	ps->a = NULL;
//	ps->size = ps->capacity = 0;
//}
//
//void test(SL* ps)
//{
//	SLInit(ps);
//	SLInsert(ps, 0, 1);
//	SLInsert(ps, 1, 2);
//	SLInsert(ps, 2, 3);
//	SLInsert(ps, 3, 4);
//	SLInsert(ps, 4, 5);
//	// 取值
//	for (int i = 0; i < ps->size; i++)
//		printf("%d ", GetElem(ps, i));
//	// 删除 
//	SLErase(ps, -1);
//	SLInsert(ps, 3, 1);
//	SLErase(ps, 4);
//	SLErase(ps, 0);
//	for (int i = 0; i < ps->size; i++)
//		printf("%d ", GetElem(ps, i));
//
//}
//
//int main()
//{
//	SL ps;
//	test(&ps); // 测试代码
//	SLDel(&ps);
//	return 0;
//}

//#include<stdio.h>
//int main()
//{
//	int i = 0;
//	for (i = 1; i < 4; i += 2)
//	{
//		printf("%d ", i);
//		break;
//	}
//	return 0;
//}


#include <opencv2\opencv.hpp> 
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
	Mat src = imread("D:/二次元壁纸/13英桀.jpg");
	imshow("13英桀", src);
	waitKey(0);
	destroyAllWindows();
	return 0;
}